package Controller;

import Beans.AreaBean;
import Beans.CajaBean;
import DAO.HibernateAreaDAO;
import DAO.HibernateCajaDAO;
import DAO.HibernateCajaDiariaDAO;
import DTO.CajaDTO;
import Model.Caja;

public class AdministradorCaja {
	private static AdministradorCaja instancia;
	private AdministradorCaja(){
		
	}
	public static AdministradorCaja getInstancia(){
		if(instancia==null)
			instancia=new AdministradorCaja();
		return instancia;
	}
	
	public CajaBean fromModelTOBean(Caja caja){
		CajaBean cajaBean=null;
		if(caja!=null){
			cajaBean=new CajaBean();
			cajaBean.setIdCaja(caja.getId());
			cajaBean.setNombre(caja.getNombre());
			cajaBean.setCajas(AdministradorCajaDiaria.getInstancia().fromModelTOBean(caja.getCajas()));
		}
		return cajaBean;
	}
	public Caja fromDTOTOModel(CajaDTO cajaDTO) {
		Caja caja=null;
		if(cajaDTO!=null){				
			caja=new Caja();
			caja.setId(cajaDTO.getId());
			caja.setNombre(cajaDTO.getNombre());
			caja.setCajas(AdministradorCajaDiaria.getInstancia().fromDTOTOModel(cajaDTO.getCajas()));
		}
		return caja;
	}
	
	public CajaDTO fromModelTODTO(Caja caja) {
		CajaDTO cajaDTO=null;
		if(caja!=null){				
			cajaDTO=new CajaDTO();
			cajaDTO.setId(caja.getId());
			cajaDTO.setNombre(caja.getNombre());
			cajaDTO.setCajas(AdministradorCajaDiaria.getInstancia().fromModelTODTO(caja.getCajas()));
		}
		return cajaDTO;
	}
	
	public Caja fromBeanTOModel(CajaBean cajaBean) {
		Caja caja=null;
		if(cajaBean!=null){				
			caja=new Caja();
			caja.setId(cajaBean.getIdCaja());
			caja.setNombre(cajaBean.getNombre());
			caja.setCajas(AdministradorCajaDiaria.getInstancia().fromBeanTOModel(cajaBean.getCajas()));
		}
		return caja;
	}
	public Caja buscarCaja(Caja caja) {
		CajaBean cb=fromModelTOBean(caja);
		cb=HibernateCajaDAO.getInstancia().buscarCaja(cb);
		return fromBeanTOModel(cb);
	}
}
